package com.hsmpay.common.pojo.qian4;

import com.hsmpay.common.pojo.BasePojo;
import org.apache.commons.lang.StringUtils;
import com.hsmpay.qian4.pojo.send.ICCardParam;

import java.util.Date;

/**
 * 调用千4接口日志表
 * java bean
 * 对应 info_qian4_send_log表
 *
 * @author 颜铃璋
 */
public class Qian4SendLog extends BasePojo {
    private static final long serialVersionUID = 6692211882079534826L;

    private Long id;
    private String application;//
    private Long orderTypeId;//订单类型Id
    private Long roleId; //终端类型
    private Integer callType;//0 前端调用  1 后台调用
    private Long userId;//前端调用  前端用户ID 后台调用  后台用户ID
    private Date sendTime;//发送时间
    private String sendSeqId;//发送流水号
    private String merchantId;//商户代码
    private String terminalId;//终端代码
    private String platformId;//平台代码
    private String transType;//交易类型码
    private String merchantOrderId;//商户订单号
    private Date merchantOrderTime;//商户订单号时间
    private String transAmt;//交易金额
    private Date transTime;//交易时间
    private String currency;//交易币种
    private String accountNumber;//主账户
    private String pin;//个人身份标识码
    private String track2Data;//磁道2数据
    private String track3Data;//磁道3数据
    private String dynamicKeyData;//动态密钥数据
    private String merchantSign;//商户数字签名
    private String senderSign;//发送方数字签名
    private String serviceInfo;//服务信息
    private String terminalInfo;//终端信息
    private String mac;//报文鉴别码

    private String creditNumber;//信用卡卡号
    private Date orgTransTime;//原交易时间
    private String orgTransId;//原交易订单
    private String accountNumber2;//转入卡卡号
    private String accountName;//转入账户名
    private String orgMerchantOrderId;//原商户id
    private String responseCode;//银联应答码
    private String bankMessage;//银行交易信息
    private String phoneNum;//待充值手机号
    private Integer collectionType;//代收类型
    private String ip;//ip

    private String bankOrderNum;//交易流水号
    private String cardType;//卡类型
    private String expireDate;//卡有效期（预授权时）
    private String batchId;//批次号
    private String authorizationCode;//授权码
    private String issueBank;//发卡行
    private String bankRef;//参考号
    private String searchId;//凭证号

    private String icCardNum;//
    private String icCardYu;//IC卡域
    private Integer cardTypeN;//刷卡类型  1、磁条卡 2、IC卡
    private Integer isNeedNameId;//是否需要传入身份证和转出卡姓名 1 需要 0 不需要
    private String idCard;//收款卡身份证
    private String purchaseName;//收款卡姓名
    private String fee;//手续费

    private Integer encryType;//加密类型
    private ICCardParam iccParam;

    private String miPin;//加密密码
    private String miTrack2Data;//加密2磁道
    private Integer isNew;//0 为旧版本  1 新版本
    private String transTerminalId;//翰星终端ID

    //业务属性
    public int timeOut = 0;//记录超时  如果超时三次  将保存到超时表中
    //日期区间查询参数
    private Date startDate;
    private Date endDate;

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getOrgTransTime() {
        return orgTransTime;
    }

    public void setOrgTransTime(Date orgTransTime) {
        this.orgTransTime = orgTransTime;
    }

    public String getOrgTransId() {
        return orgTransId;
    }

    public void setOrgTransId(String orgTransId) {
        this.orgTransId = orgTransId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getOrderTypeId() {
        return orderTypeId;
    }

    public void setOrderTypeId(Long orderTypeId) {
        this.orderTypeId = orderTypeId;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public String getSendSeqId() {
        return sendSeqId;
    }

    public void setSendSeqId(String sendSeqId) {
        this.sendSeqId = sendSeqId;
    }

    public String getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public String getTerminalId() {
        return terminalId;
    }

    public void setTerminalId(String terminalId) {
        this.terminalId = terminalId;
    }

    public String getPlatformId() {
        return platformId;
    }

    public void setPlatformId(String platformId) {
        this.platformId = platformId;
    }

    public String getTransType() {
        return transType;
    }

    public void setTransType(String transType) {
        this.transType = transType;
    }

    public String getMerchantOrderId() {
        return merchantOrderId;
    }

    public void setMerchantOrderId(String merchantOrderId) {
        this.merchantOrderId = merchantOrderId;
    }

    public Date getMerchantOrderTime() {
        return merchantOrderTime;
    }

    public void setMerchantOrderTime(Date merchantOrderTime) {
        this.merchantOrderTime = merchantOrderTime;
    }

    public String getTransAmt() {
        return transAmt;
    }

    public void setTransAmt(String transAmt) {
        this.transAmt = transAmt;
    }

    public Date getTransTime() {
        return transTime;
    }

    public void setTransTime(Date transTime) {
        this.transTime = transTime;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public String getPin() {
        return pin;
    }

    public void setPin(String pin) {
        this.pin = pin;
    }

    public String getTrack2Data() {
        return track2Data;
    }

    public void setTrack2Data(String track2Data) {
        this.track2Data = track2Data;
    }

    public String getTrack3Data() {
        return track3Data;
    }

    public void setTrack3Data(String track3Data) {
        this.track3Data = track3Data;
    }

    public String getDynamicKeyData() {
        return dynamicKeyData;
    }

    public void setDynamicKeyData(String dynamicKeyData) {
        this.dynamicKeyData = dynamicKeyData;
    }

    public String getMerchantSign() {
        return merchantSign;
    }

    public void setMerchantSign(String merchantSign) {
        this.merchantSign = merchantSign;
    }

    public String getSenderSign() {
        return senderSign;
    }

    public void setSenderSign(String senderSign) {
        this.senderSign = senderSign;
    }

    public String getServiceInfo() {
        return serviceInfo;
    }

    public void setServiceInfo(String serviceInfo) {
        this.serviceInfo = serviceInfo;
    }

    public String getTerminalInfo() {
        return terminalInfo;
    }

    public void setTerminalInfo(String terminalInfo) {
        this.terminalInfo = terminalInfo;
    }

    public String getMac() {
        return mac;
    }

    public void setMac(String mac) {
        this.mac = mac;
    }

    public String getCreditNumber() {
        return creditNumber;
    }

    public void setCreditNumber(String creditNumber) {
        this.creditNumber = creditNumber;
    }

    public String getAccountNumber2() {
        return accountNumber2;
    }

    public void setAccountNumber2(String accountNumber2) {
        this.accountNumber2 = accountNumber2;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getOrgMerchantOrderId() {
        return orgMerchantOrderId;
    }

    public void setOrgMerchantOrderId(String orgMerchantOrderId) {
        this.orgMerchantOrderId = orgMerchantOrderId;
    }

    public String getResponseCode() {
        return responseCode;
    }

    public void setResponseCode(String responseCode) {
        this.responseCode = responseCode;
    }

    public String getBankMessage() {
        return bankMessage;
    }

    public void setBankMessage(String bankMessage) {
        this.bankMessage = bankMessage;
    }

    public Integer getCallType() {
        return callType;
    }

    public void setCallType(Integer callType) {
        this.callType = callType;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getApplication() {
        return application;
    }

    public void setApplication(String application) {
        this.application = application;
    }

    public String getPhoneNum() {
        return phoneNum;
    }

    public void setPhoneNum(String phoneNum) {
        this.phoneNum = phoneNum;
    }

    public Integer getCollectionType() {
        return collectionType;
    }

    public void setCollectionType(Integer collectionType) {
        this.collectionType = collectionType;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getBankOrderNum() {
        return bankOrderNum;
    }

    public void setBankOrderNum(String bankOrderNum) {
        this.bankOrderNum = bankOrderNum;
    }

    public String getCardType() {
        return cardType;
    }

    public void setCardType(String cardType) {
        this.cardType = cardType;
    }

    public String getExpireDate() {
        return expireDate;
    }

    public void setExpireDate(String expireDate) {
        this.expireDate = expireDate;
    }

    public String getBatchId() {
        return batchId;
    }

    public void setBatchId(String batchId) {
        this.batchId = batchId;
    }

    public String getAuthorizationCode() {
        return authorizationCode;
    }

    public void setAuthorizationCode(String authorizationCode) {
        this.authorizationCode = authorizationCode;
    }

    public String getIssueBank() {
        return issueBank;
    }

    public void setIssueBank(String issueBank) {
        this.issueBank = issueBank;
    }

    public String getBankRef() {
        return bankRef;
    }

    public void setBankRef(String bankRef) {
        this.bankRef = bankRef;
    }

    public String getSearchId() {
        return searchId;
    }

    public void setSearchId(String searchId) {
        this.searchId = searchId;
    }

    public int getTimeOut() {
        return timeOut;
    }

    public void setTimeOut(int timeOut) {
        this.timeOut = timeOut;
    }

    public String getIcCardYu() {
        return icCardYu;
    }

    public void setIcCardYu(String icCardYu) {
        if (StringUtils.isNotEmpty(icCardYu) && !"null".equals(icCardYu)) {
            iccParam = new ICCardParam(icCardYu);
        }
        this.icCardYu = icCardYu;
    }

    public ICCardParam getIccParam() {
        return iccParam;
    }

    public void setIccParam(ICCardParam iccParam) {
        this.iccParam = iccParam;
    }

    public Integer getEncryType() {
        return encryType;
    }

    public void setEncryType(Integer encryType) {
        this.encryType = encryType;
    }

    public String getIcCardNum() {
        return icCardNum;
    }

    public void setIcCardNum(String icCardNum) {
        this.icCardNum = icCardNum;
    }

    public String getMiPin() {
        return miPin;
    }

    public void setMiPin(String miPin) {
        this.miPin = miPin;
    }

    public String getMiTrack2Data() {
        return miTrack2Data;
    }

    public void setMiTrack2Data(String miTrack2Data) {
        this.miTrack2Data = miTrack2Data;
    }

    public Integer getCardTypeN() {
        return cardTypeN;
    }

    public void setCardTypeN(Integer cardTypeN) {
        this.cardTypeN = cardTypeN;
    }

    public Integer getIsNeedNameId() {
        return isNeedNameId;
    }

    public void setIsNeedNameId(Integer isNeedNameId) {
        this.isNeedNameId = isNeedNameId;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getPurchaseName() {
        return purchaseName;
    }

    public void setPurchaseName(String purchaseName) {
        this.purchaseName = purchaseName;
    }

    public String getFee() {
        return fee;
    }

    public void setFee(String fee) {
        this.fee = fee;
    }

    public Integer getIsNew() {
        return isNew;
    }

    public void setIsNew(Integer isNew) {
        this.isNew = isNew;
    }

    public String getTransTerminalId() {
        return transTerminalId;
    }

    public void setTransTerminalId(String transTerminalId) {
        this.transTerminalId = transTerminalId;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
}
